The present invention relates to a method for communication among computers, and more particularly to a communication method suitable for a transport layer and a network layer in a protocol layered model prescribed by an OSI (Open Systems Inter-connection) reference model.
Various kinds of data including text data and video data are exchanged between computers via a network. In the communication between computers, a network having a relatively low rate of 10 Mbps or less has hitherto been used as a physical transmission path but recently, a network of a high rate of up to 100 Mbps to 1 Gbps has been put to use in, for example, ATM (Asynchronous Transfer Mode). With the increase in the rate of the physical transmission path accelerated as above, overhead for data copy and interruption handling incurred during a protocol processing on each computer causes a bottleneck in using up the bandwidth of the transmission path.
As a typical protocol for the transport stratum, the TCP (Transmission Control Protocol) is available. This protocol is specifically described in "Internetworking with TCP/IP" by D. Comer, Prentice-Hall International, Inc., 1988, pp.129-151. The TCP is a reliable connection oriented protocol in which sequence numbers are sequentially applied to individual byte units conveying on a virtual circuit established between two computers so that orderly and errorless reception of all transmitting data pieces should be warranted. In the TCP, data handed down from an upper layer during a request for transmission is once copied on a buffer in the TCP in preparation for re-transmission required in the event of the loss of a packet. The transmit request from the upper layer succeeds at the time that the copying finishes.
When the data length of the data handed with the transmit request is larger than a maximum transfer unit (MTU), the data is divided into a plurality of MTU packets and a timer is set packet by packet. When packets are received correctly, the receiving side returns to the transmitting side an acknowledgement (ACK) response including an offset position used to indicate how many bytes in the byte stream are all received correctly, and the transmitting side responds to the information in the ACK to release a corresponding portion of the transmission buffer in the TCP. Then, the receiving side holds the received data in a buffer in the TCP until a receive request from the upper layer is issued.
Exchange of packets during transmission and reception in the TCP is illustrated in FIG. 2. When a computer 400 is a transmitting-side computer and a computer 460 is a receiving-side computer in FIG. 4, the transmitting side in FIG. 2 corresponds to an intermediate layer protocol module 404 and the receiving side in FIG. 2 similarly corresponds to an intermediate layer protocol module 464 in the receiving-side computer 460. Referring to FIG. 2, SEQ=9 indicates that data beginning with the 9-th byte is transferred from the transmitting side to the receiving side in a transmitting/receiving byte stream space which extends from the transmitting-side intermediate layer protocol module 404 to the receiving-side medium protocol 464 in FIG. 4, and ACK=21 corresponds to an acknowledgement response indicating that data as far as the 20-th byte has been received in the transmitting/receiving byte stream space. In FIG. 2, a data packet (SEQ=9) of 12 bytes corresponding to sequence numbers 9 to 20 is first transmitted from the transmitting side to the receiving side and concurrently therewith, the timer is set on the transmitting side in preparation for the loss of the packet. Upon receiving the data packet, the receiving side returns to the transmitting side the acknowledgement response (ACK=21) including information to the effect that the packet preceding the sequence number 21 has been received. Subsequently, data pieces corresponding to sequence numbers 21 to 34 and 35 to 38 are transmitted similarly and receipt acknowledgements are returned. In the event that data pieces corresponding to sequence numbers 39 to 48 are lost during a transmission, the data pieces succeeding the sequence number 39 are re-transmitted at the time that the timer set at the beginning of the transmission expires (time-out).